//用户名和密码的增删改查
const express = require('express');
//引入数据库
const db = require('../db/index');
//引入模型对象
const Users = require('../models/users');
const router = new express.Router();
//用户名和密码密码的正则匹配
const user_name_reg = /^[A-Za-z][A-Za-z0-9_]{4,19}$/;
const password_reg = /^[A-Za-z0-9.]{8,15}$/;

//注册
router.post('/register',async(req,res)=>{
    // 收集到对应的用户名和密码，将其存放到数据库
    // 收集到用户名和密码之后，需要验证其格式
    // user_name  必须以字母开头，不能以数字开头，其他可以是数字字母下划线 长度5-20
    // password 可以是字母、数字、.   长度 8-15
    console.log(req.body);

    console.log(user_name_reg.test(req.body.user_name));
    console.log(password_reg.test(req.body.password));

    // 当浏览器提交过来的用户名和密码符合规则，存储到数据库，返回注册成功，如果有一个不符合规则，不存，返回用户名和密码格式错误请重新注册
    if(user_name_reg.test(req.body.user_name) && password_reg.test(req.body.password)){
        await db;
        try{
            await Users.create(req.body);
            res.send('注册成功！');
        }catch(e){
            console.log(e);
            res.send('注册失败，请重新注册！');
        }
    }else{
        res.send('用户名和密码格式错误，请重新注册');
    }
})

//登录
router.post('/login',async(req,res)=>{
    await db;
    if(user_name_reg.test(req.body.user_name) && password_reg.test(req.body.password)){
        try{
            const result = await Users.findOne({user_name:req.body.user_name});
            console.log(result);

            if(result.password == req.body.password){
                res.send('登录成功！');
            }else{
                res.send('用户名或密码错误，请重新登录！');
            }
        }catch(e){
            console.log(e);
            res.send('用户名或密码错误，请重新登录');
        }
    }else{
        res.send('用户名和密码格式错误');
    }
})

module.exports = router;